From 71c32aea6a9dc9daff052e6544a7874bbada2c7d Mon Sep 17 00:00:00 2001 From: robertl Date: Fri, 30 Jun 2006 13:24:49 +0000 Subject: [PATCH] Test return value of fread for EOF and other error detection. --- gpsbabel/saroute.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gpsbabel/saroute.c b/gpsbabel/saroute.c index bbef33c05..19a454d82 100644 --- a/gpsbabel/saroute.c +++ b/gpsbabel/saroute.c @@ -58,7 +58,9 @@ ReadShort(FILE * f) { gbuint16 result = 0; - fread(&result, sizeof (result), 1, f); + if (!fread(&result, sizeof (result), 1, f)) { + fatal(MYNAME ": Attempt to read past EOF"); + } return le_read16(&result); } @@ -67,7 +69,8 @@ ReadLong(FILE * f) { gbuint32 result = 0; - fread(&result, sizeof (result), 1, f); + if (!fread(&result, sizeof (result), 1, f)) + fatal(MYNAME ": Attempt to read past EOF"); return le_read32(&result); } @@ -77,7 +80,8 @@ ReadRecord(FILE * f, { unsigned char *result = (unsigned char *) xmalloc(size); - fread(result, size, 1, f); + if (!fread(result, size, 1, f)) + fatal(MYNAME ": Attempt to read past EOF"); return result; } -- 2.30.2